package com.crm.system.service.csd.customerManager;

import com.crm.common.model.DhPageInfo;
import com.crm.model.qo.csd.customerManager.CustomerContractUpdateQO;
import com.crm.model.vo.csd.customerManager.ContractAndOrderVO;
import com.crm.model.vo.csd.customerManager.ContractDetailVO;
import com.crm.model.vo.customerContractManager.CustomerContractVO;

import java.text.ParseException;
import java.util.Map;

/**
 * @author yincuimei
 * @Date 2021/8/26 16:28
 * (客服部)合同&订单
 */
public interface ContractAndOrderService {

    /**
     * 合同&订单列表
     * 业务描述：
     *       查询未删除的合同信息及订单编号；
     *       可按审核人、当前状态、合同开始日期(前端列是有效起止)排序
     *       默认按合同开始日期排序(倒序)
     * @param customerId         客户ID
     * @param queryType          查询类型-contract:合同;order:订单
     * @param pageIndex/pageSize 页码/分页大小
     * @param sortName           排序字段
     * @param sortOrder          排序规则
     * @author yincuimei
     * @return
     */
    DhPageInfo<ContractAndOrderVO> selectContractAndOrderVOList(String customerId,String queryType,Integer pageIndex, Integer pageSize, String sortName, String sortOrder);

    /**
     * (客服部)合同&订单-》合同查看-》编辑详情
     * @param contractId  合同ID
     * @author yincuimei
     * @return
     */
    ContractDetailVO selectContractDetailVOById(String contractId);

    /**
     * 合同列表-》查看-》合同编辑
     * @param customerContractUpdateQO
     * @author yincuimei
     * @return
     */
    Boolean updateCustomerContract(CustomerContractUpdateQO customerContractUpdateQO);

    Map addCustomerContract(String contractAnnexId,String customerId,String customerName,String contractStartDate,String contractEndDate,String contractReviewNotes)throws ParseException;
}
